package clases.academico;

import CapaDatos.DataSource;
import CapaDatos.Sql;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Daniel
 */
public class Informes {

    private String sql;
    private DataSource dt;
    private DefaultTableModel modelo;

    public Informes() {
        dt = new DataSource();
        modelo = new DefaultTableModel();
    }

    public void getPlancha(String curso, String parcial, String quimestre) {
        global.Dialogos.GuardadoconExito();
    }

    public DefaultTableModel getMaterias(String curso, String parcial, String quimestre) {
        sql = "SELECT  MATERIA.IDMATERIA,MATERIA FROM CURSO \n"
                + "                JOIN PARALELO ON PARALELO.IDPARALELO=CURSO.IDPARALELO \n"
                + "                JOIN PERIODOCURSO ON PERIODOCURSO.IDCURSO=CURSO.IDCURSO \n"
                + "                JOIN PERIODO ON PERIODO.IDPERIODO=PERIODOCURSO.IDPERIODO\n"
                + "                JOIN MATERIAPERIODOCURSO ON MATERIAPERIODOCURSO.IDPERIODOCURSO=PERIODOCURSO.IDPERIODOCURSO \n"
                + "                JOIN MATERIA ON MATERIA.IDMATERIA=MATERIAPERIODOCURSO.IDMATERIA \n"
                + "                WHERE CONCAT(CURSO,' ',PARALELO)= '" + curso + "'\n"
                + "                ORDER BY(CONCAT(CURSO,' ', PARALELO), MATERIA);";
        Sql.getConsulta(sql, dt);
        String[] m = new String[10];
        modelo.addColumn("Alumno");
        while (dt.next()) {
            modelo.addColumn(dt.getString(2));
        }
        this.getAlumnos(curso);
        for (int n = 0; n < modelo.getRowCount()-1; n++) {
           getNotasAlumno(modelo.getValueAt(n, 0).toString(), curso, parcial, quimestre);
          //  System.out.println(modelo.getValueAt(n, 0));
         //  break;
        }

        return modelo;

    }

    public void getAlumnos(String curso) {
        sql = "SELECT ALUMNO.CEDULARUC, CONCAT(APELLIDO,' ',NOMBRE) AS ALUMNO FROM MATRICULA \n"
                + "JOIN MATRICULACURSO ON MATRICULACURSO.IDMATRICULA=MATRICULA.IDMATRICULA \n"
                + "JOIN PERIODOCURSO ON MATRICULACURSO.IDPERIODOCURSO=PERIODOCURSO.IDPERIODOCURSO \n"
                + "JOIN PERIODO ON PERIODO.IDPERIODO=PERIODOCURSO.IDPERIODO \n"
                + "JOIN CURSO ON PERIODOCURSO.IDCURSO=CURSO.IDCURSO \n"
                + "JOIN PARALELO ON PARALELO.IDPARALELO=CURSO.IDPARALELO \n"
                + "JOIN ALUMNO ON MATRICULA.CEDULARUC=ALUMNO.CEDULARUC \n"
                + "JOIN PERSONA ON PERSONA.CEDULARUC=ALUMNO.CEDULARUC \n"
                + "WHERE PERIODO.ESTADO=TRUE \n"
                + "AND CONCAT(CURSO,' ',PARALELO)='" + curso + "' ORDER BY ALUMNO";
        Sql.getConsulta(sql, dt);

        String[] m = new String[25];
        int n = 1;
        while (dt.next()) {
            m[0] = dt.getString(1);
            m[1] = dt.getString(2);

            modelo.addRow(m);
            n++;
        }
    }

    private void getNotasAlumno(String alumno, String curso, String parcial, String quimestre) {
          DataSource t = new DataSource();
        sql = "SELECT   CONCAT (PERSONA.APELLIDO,' ',PERSONA.NOMBRE) AS ALUMNO,MATERIA.MATERIA,LIBRETA.PROMEDIO,ESCALA.ABREVIATURA \n"
                + "FROM PERSONA JOIN MATRICULA ON PERSONA.CEDULARUC=MATRICULA.CEDULARUC JOIN\n"
                + "MATRICULACURSO ON MATRICULA.IDMATRICULA=MATRICULACURSO.IDMATRICULA JOIN LIBRETA ON LIBRETA.IDMATRICULACURSO=MATRICULACURSO.IDMATRICULACURSO\n"
                + "JOIN PARCIAL ON LIBRETA.IDPARCIAL=PARCIAL.IDPARCIAL JOIN QUIMESTRE ON QUIMESTRE.IDQUIMESTRE=LIBRETA.IDQUIMESTRE\n"
                + "JOIN MATERIADOCENTE ON MATERIADOCENTE.IDMATERIADOCENTE=LIBRETA.IDMATERIADOCENTE\n"
                + "JOIN MATERIAPERIODOCURSO ON MATERIAPERIODOCURSO.IDMATERIAPERIODOCURSO=MATERIADOCENTE.IDMATERIAPERIODOCURSO\n"
                + "JOIN MATERIA ON MATERIAPERIODOCURSO.IDMATERIA=MATERIA.IDMATERIA JOIN PERIODOCURSO ON  MATERIAPERIODOCURSO.IDPERIODOCURSO=PERIODOCURSO.IDPERIODOCURSO\n"
                + "JOIN CURSO ON PERIODOCURSO.IDCURSO=CURSO.IDCURSO \n"
                + "JOIN PARALELO ON PARALELO.IDPARALELO=CURSO.IDPARALELO JOIN ESCALA ON LIBRETA.IDESCALA=ESCALA.IDESCALA\n"
                + "\n"
                + "WHERE(MATRICULA.ESTADO='TRUE' AND PARCIAL.PARCIAL='" + parcial + "' AND QUIMESTRE.NOMBRE='" + quimestre + "'AND MATRICULA.CEDULARUC='" + alumno + "' AND\n"
                + "CONCAT(CURSO.CURSO,' ',PARALELO.PARALELO)='" + curso + "') ";
        Sql.getConsulta(sql, t);

         String[] m = new String[10];
        int n=0;
        
        while (t.next()) {
            modelo.setValueAt(t.getString(3), n, 4);
            m[6] = t.getString(2);
            n++;
         //   m[3] = dt.getString(3);

           // modelo.addRow(m);
           
        }

    }

}
